﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ПодключаемоеОборудованиеСБРФЭквайринговыеТерминалы
	{
		///////////////////////////////////////////////////////////////////////////////
		// ПРОГРАММНЫЙ ИНТЕРФЕЙС
		// Функция осуществляет подключение устройства.
		//
		// Параметры:
		//  ОбъектДрайвера   - <*>
		//           - ОбъектДрайвера драйвера торгового оборудования.
		//
		// Возвращаемое значение:
		//  <Булево> - Результат работы функции.
		//

		public object ПодключитьУстройство(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			/*//Обязательные выходные
*/
			//ВыходныеПараметры = Новый Массив();
			/*// Проверка настроенных параметров
*/
			//ШиринаСлипЧека             = Неопределено;
			//КодСимволаЧастичногоОтреза = Неопределено;
			//Модель                     = Неопределено;
			//Параметры.Свойство("ШиринаСлипЧека"            , ШиринаСлипЧека);
			//Параметры.Свойство("КодСимволаЧастичногоОтреза", КодСимволаЧастичногоОтреза);
			//Параметры.Свойство("Модель"                    , Модель);
			if(true/*ШиринаСлипЧека             = Неопределено
	 Или КодСимволаЧастичногоОтреза = Неопределено
	 Или Модель                     = Неопределено*/)
			{
				//ВыходныеПараметры.Добавить(999);
				/*ВыходныеПараметры.Добавить(НСтр("ru='Не настроены параметры устройства.
		|Для корректной работы устройства необходимо задать параметры его работы.
		|Сделать это можно при помощи формы ""Настройка параметров"" модели
		|подключаемого оборудования в форме ""Подключение и настройка оборудования"".'"));*/
				//Результат = Ложь;
			}
			/*// Конец: Проверка настроенных параметров
*/
			if(true/*Результат*/)
			{
				//ОбъектДрайвера.ШиринаСлипЧека = Число(Параметры.ШиринаСлипЧека);
				//ПараметрыПодключения.Вставить("ПоследнийТипКарты", Неопределено);
			}
			return null;
		}
		// Функция осуществляет отключение устройства.
		//
		// Параметры:
		//  ОбъектДрайвера - <*>
		//         - ОбъектДрайвера драйвера торгового оборудования.
		//
		// Возвращаемое значение:
		//  <Булево> - Результат работы функции.
		//

		public object ОтключитьУстройство(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			/*//Обязательные выходные
*/
			//ВыходныеПараметры = Новый Массив();
			return null;
		}
		// Функция получает, обрабатывает и перенаправляет на исполнение команду к драйверу
		//

		public object ВыполнитьКоманду(/*Команда, ВходныеПараметры = Неопределено, ВыходныеПараметры = Неопределено,
                         ОбъектДрайвера, Параметры, ПараметрыПодключения*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры = Новый Массив();
			/*// Оплата платежной картой
*/
			if(true/*Команда = "AuthorizeSales"*/)
			{
				//Сумма      = ВходныеПараметры[0];
				//НомерКарты = ВходныеПараметры[1];
				/*Результат = ОплатитьПлатежнойКартой(ОбъектДрайвера, Параметры, ПараметрыПодключения,
		                                    Сумма, НомерКарты, ВыходныеПараметры);*/
				/*// Возрат платежа
*/
			}
			return null;
		}
		///////////////////////////////////////////////////////////////////////////////
		// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
		// Функция осуществляет авторизацию (оплату) по карте.
		// (API v2.0)
		//
		// Параметры:
		//  Объект              - <*>
		//                      - Объект драйвера ЭС.
		//
		//  Сумма               – <Число>
		//                      - Сумма к оплате по карте
		//
		//  КодRRN              - <Строка>
		//                      - Уникальный код RRN транзакции
		//
		//  КодАвторизации      - <Строка>
		//                      - Возвращается код авторизации транзакции
		//
		//  КодОперации         - <Строка>
		//                      - Последовательный код операции
		//
		//  МассивСтрокСлипЧека - <Структура>
		//                      - Массив строк слип-чека, сформированного
		//                        после успешного выполнения операции
		//
		//  ШиринаЧека          - <Число>
		//                      - Ширина слип-чека, установленная в параметрах настройки
		//
		//  КоличествоКопий     - <Число>
		//                      - Количество печатаемых копий слип-чека
		//
		// Возвращаемое значение:
		//     <ПеречислениеСсылка.ОшибкиПриРаботеСТорговымОборудованием>
		//                 - Результат работы функции.
		//

		public object ОплатитьПлатежнойКартой(/*ОбъектДрайвера, Параметры, ПараметрыПодключения,
                                Сумма, НомерКарты, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//СуммаВременная = Неопределено;
			//КодКарты       = Неопределено;
			//СсылочныйНомер = Неопределено;
			//НомерЧека      = Неопределено;
			//ОбъектДрайвера.ТипКарты = 0;
			/*//ПараметрыПодключения.ПоследнийТипКарты;?????????????????
*/
			//СуммаВременная = Сумма*100;
			//Ответ = ОбъектДрайвера.ОплатитьПлатежнойКартой(СуммаВременная, СсылочныйНомер, НомерЧека);
			if(true/*Не Ответ*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить("");
				//ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);
				//Результат = Ложь;
			}
			return null;
		}
		// Функция осуществляет возврат платежа по карте.
		// (API v2.0)
		//
		// Параметры:
		//  Объект              - <*>
		//                      - Объект драйвера ЭС.
		//
		//  Сумма               – <Число>
		//                      - Сумма к оплате по карте
		//
		//  КодRRN              - <Строка>
		//                      - Уникальный код RRN транзакции
		//
		//  КодАвторизации      - <Строка>
		//                      - Возвращается код авторизации транзакции
		//
		//  КодОперации         - <Строка>
		//                      - Последовательный код операции
		//
		//  МассивСтрокСлипЧека - <Структура>
		//                      - Массив строк слип-чека, сформированного
		//                        после успешного выполнения операции
		//
		//  ШиринаЧека          - <Число>
		//                      - Ширина слип-чека, установленная в параметрах настройки
		//
		//  КоличествоКопий     - <Число>
		//                      - Количество печатаемых копий слип-чека
		//
		// Возвращаемое значение:
		//     <ПеречислениеСсылка.ОшибкиПриРаботеСТорговымОборудованием>
		//                 - Результат работы функции.
		//

		public object ВернутьПлатежПоПлатежнойКарте(/*ОбъектДрайвера, Параметры, ПараметрыПодключения,
                                      Сумма, НомерКарты, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//СуммаВременная = Неопределено;
			//КодКарты       = Неопределено;
			//СсылочныйНомер = Неопределено;
			//НомерЧека      = Неопределено;
			//ОбъектДрайвера.ТипКарты = 0;
			/*//ПараметрыПодключения.ПоследнийТипКарты;?????????????????
*/
			//СуммаВременная = Сумма*100;
			//Ответ = ОбъектДрайвера.ВернутьПлатежПоПлатежнойКарте(СуммаВременная, СсылочныйНомер, НомерЧека);
			if(true/*Не Ответ*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить("");
				//ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);
				//Результат = Ложь;
			}
			return null;
		}
		// Функция осуществляет отмену платежа по карте.
		// (API v2.0)
		//
		// Параметры:
		//  Объект              - <*>
		//                      - Объект драйвера ЭС.
		//
		//  Сумма               – <Число>
		//                      - Сумма к оплате по карте
		//
		//  КодRRN              - <Строка>
		//                      - Уникальный код RRN транзакции
		//
		//  КодАвторизации      - <Строка>
		//                      - Возвращается код авторизации транзакции
		//
		//  КодОперации         - <Строка>
		//                      - Последовательный код операции
		//
		//  МассивСтрокСлипЧека - <Структура>
		//                      - Массив строк слип-чека, сформированного
		//                        после успешного выполнения операции
		//
		//  ШиринаЧека          - <Число>
		//                      - Ширина слип-чека, установленная в параметрах настройки
		//
		//  КоличествоКопий     - <Число>
		//                      - Количество печатаемых копий слип-чека
		//
		// Возвращаемое значение:
		//     <ПеречислениеСсылка.ОшибкиПриРаботеСТорговымОборудованием>
		//                 - Результат работы функции.
		//

		public object ОтменитьПлатежПоПлатежнойКарте(/*ОбъектДрайвера, Параметры, ПараметрыПодключения,
                                       Сумма, СсылочныйНомер, НомерЧека, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//СуммаВременная = Неопределено;
			//ОбъектДрайвера.ТипКарты = 0;
			/*//ПараметрыПодключения.ПоследнийТипКарты;?????????????????
*/
			//СуммаВременная = Сумма*100;
			//Ответ = ОбъектДрайвера.ОтменитьПлатежПоПлатежнойКарте(СуммаВременная, СсылочныйНомер);
			if(true/*Не Ответ*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить("");
				//ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);
				//Результат = Ложь;
			}
			return null;
		}
		// Функция осуществляет аварийную отмену операции по карте.
		// (API v2.5)
		//
		// Параметры:
		//  Объект              - <*>
		//                      - Объект драйвера ЭС.
		//
		//  Сумма               – <Число>
		//                      - Сумма отменяемой операции по карте
		//
		//  КодRRN              - <Строка>
		//                      - Уникальный код RRN оригинальной транзакции
		//
		//  КодАвторизации      - <Строка>
		//                      - Код авторизации оригинальной транзакции
		//
		// Возвращаемое значение:
		//     <ПеречислениеСсылка.ОшибкиПриРаботеСТорговымОборудованием>
		//                 - Результат работы функции.
		//

		public object АварийнаяОтменаОперации(/*ОбъектДрайвера, Параметры, ПараметрыПодключения,
                                Сумма, СсылочныйНомер, НомерЧека, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры.Добавить(Неопределено);
			//СуммаВременная = Сумма * 100;
			//ОбъектДрайвера.ТипКарты = 0;
			//Ответ = ОбъектДрайвера.ОтменитьПлатежПоПлатежнойКарте(СуммаВременная, СсылочныйНомер);
			if(true/*Не Ответ*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить("");
				//ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);
				//Результат = Ложь;
			}
			return null;
		}
		// Функция осуществляет сверку итогов по картам.
		// (API v2.0)
		//
		// Параметры:
		//  Объект              - <*>
		//                      - Объект драйвера ЭС.
		//
		//  МассивСтрокСлипЧека - <Структура>
		//                      - Массив строк слип-чека, сформированного
		//                        после успешного выполнения операции
		//
		//  ШиринаЧека          - <Число>
		//                      - Ширина слип-чека, установленная в параметрах настройки
		//
		// Возвращаемое значение:
		//     <ПеречислениеСсылка.ОшибкиПриРаботеСТорговымОборудованием>
		//                 - Результат работы функции.
		//

		public object ИтогиДняПоКартам(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//Ответ = ОбъектДрайвера.ИтогиДняПоКартам();
			if(true/*Не Ответ*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить("");
				//ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);
				//Результат = Ложь;
			}
			return null;
		}
		// Заполняет массив строками слип-чека для последующей печати на ФР
		//
		// Параметры:
		//  Объект              - <*>
		//                      - Объект драйвера ЭС.
		//
		//  МассивСтрокСлипЧека - <Структура>
		//                      - Массив строк слип-чека, сформированного
		//                        после успешного выполнения операции
		//
		//  ШиринаЧека          - <Число>
		//                      - Ширина слип-чека, установленная в параметрах настройки
		//
		// Возвращаемое значение:
		//

		public object ПолучитьСтрокиСлипЧека(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, СлипЧек, ВыходныеПараметры*/)
		{
			/*;

	Результат = Истина;*/
			//СлипЧек   = "";
			if(true/*Результат*/)
			{
				//КопииСлипЧека = "";
				//СлипЧек = КопииСлипЧека;
			}
			return null;
		}
	}
}
